Spreadsheets are valuable tools for communicating data, status, decisions, and other information. The basics of entering data in a spreadsheet are generally easily managed by most spreadsheet users, but remembering and applying spreadsheet operations (e.g., creating charts, adding multi-parameter functions, modifying chart series, or creating array functions) is generally a much more difficult task. Spreadsheets have custom syntax and constructs that are often foreign, arcane, and only understandable by advanced users. Often the user must read the help files for all but the simplest spreadsheet operations and/or seek out a third party tutorial or other explanation on how to perform the spreadsheet operation. A way of automatically and contextually identifying and suggesting spreadsheet elements for use in a spreadsheet operation to a user would be an improvement providing a technical advantage over the current state of the art because it would reduce the knowledge required and make it easier for a user to create and edit spreadsheets.
The problems with remembering and applying spreadsheet operations are compounded when trying to use a spreadsheet on devices with smaller screens such as tablets and smartphones and by the trend of natural user interfaces (NUIs) replacing graphical user interfaces (GUI) on touch enabled devices. The smaller screens limit the amount of information that is visible at one time making it difficult for the user to display help screens and tutorials at the same time as the spreadsheet. Instead, the user is forced to read information from the help screen or tutorial, switch back to the spreadsheet, and then remember and apply the information to perform the spreadsheet operation. For simpler spreadsheet operations, this process is tedious and inefficient. For more complex spreadsheet operations, this process becomes unwieldy often to the point of becoming useless. The problems introduced by devices with smaller screens are exacerbated by the fact that most such devices lack a physical keyboard requiring even more precious display space to be occupied by a virtual keyboard in order to enter information necessary to perform the spreadsheet operation.
NUIs tend to eschew the use of traditional menus found in GUIs interfaces and seek to minimize the need for keyboard input. However, performing spreadsheet operations is generally designed around traditional menu concepts and the use of keyboards and other traditional input devices (e.g., mice). For example, a GUI typically includes a dedicated function entry area where the user types the name of a spreadsheet function in or pulls down a long list of all available functions or categorized functions and makes a selection. These GUI selection techniques are not conducive to a good NUI experience and not practical on most touch enabled devices. A way of automatically and contextually allowing a user to perform a spreadsheet operation by directly interact with spreadsheet elements would be an improvement providing a technical advantage over the current state of the art because it would make it easier and more efficient for a user to create and edit spreadsheets, especially when using NUIs and on devices having smaller displays.
It is with respect to these and other considerations that the present invention has been made. Although relatively specific problems have been discussed, it should be understood that the embodiments disclosed herein should not be limited to solving the specific problems identified in the background.